.TH PMC 8 "March 2024" "linuxptp"
.SH NAME
pmc \- PTP management client

.SH SYNOPSIS
.B pmc
[
.BI \-f " config-file"
] [
.B \-2
|
.B \-4
|
.B \-6
|
.B \-u
] [
.BI \-b " boundary-hops"
] [
.BI \-d " domain-number"
] [
.BI \-i " interface"
] [
.BI \-s " uds-address"
] [
.BI \-t " transport-specific-field"
] [
.I long-options
] [
.B \-v
] [
.B \-z
] [ command ] ...

.SH DESCRIPTION
.B pmc
is a program which implements a PTP management client according to IEEE
standard 1588. The program reads from the standard input or from the command
line actions specified by name and management ID, sends them over the selected
transport and prints any received replies. There are three actions supported:
.B GET
retrieves the specified information,
.B SET
updates the specified information and
.B CMD
(or
.BR COMMAND )
initiates the specified event.

By default the management commands are addressed to all ports. The
.B TARGET
command can be used to select a particular clock and port for the
subsequent messages.

Command
.B help
can be used to get a list of supported actions and management IDs.

.SH OPTIONS
.TP
.BI \-f " config-file"
Read configuration from the specified file. No configuration file is read by
default.
.TP
.B \-2
Select the IEEE 802.3 network transport.
.TP
.B \-4
Select the UDP IPv4 network transport. This is the default transport.
.TP
.B \-6
Select the UDP IPv6 network transport.
.TP
.B \-u
Select the Unix Domain Socket transport.
.TP
.BI \-b " boundary-hops"
Specify the boundary hops value in sent messages. The default is 1.
.TP
.BI \-d " domain-number"
Specify the domain number in sent messages. The default is 0.
.TP
.BI \-i " interface"
Specify the network interface. The default is pmc.$pid for the Unix Domain
Socket transport and eth0 for the other transports. A relative path of the Unix
Domain socket is relative to the directory of the server's socket.
.TP
.BI \-s " uds-address"
Specifies the address of the server's UNIX domain socket.
The default is /var/run/ptp/ptp4l.
.TP
.BI \-t " transport-specific-field"
Specify the transport specific field in sent messages as a hexadecimal number.
The default is 0x0.
.TP
.B \-h
Display a help message.
.TP
.B \-v
Prints the software version and exits.
.TP
.B \-z
The official interpretation of the 1588 standard mandates sending
GET actions with valid (but meaningless) TLV values. Therefore the
pmc program normally sends GET requests with properly formed TLV
values. This option enables the legacy option of sending zero
length TLV values instead.

.SH LONG OPTIONS

Each and every configuration file option (see below in sections
.BR PROGRAM\ OPTIONS
and
.BR PORT\ OPTIONS )
may also appear
as a "long" style command line argument. For example, the transportSpecific
option may be set using either of these two forms:

.RS
\f(CW\-\-transportSpecific 1   \-\-transportSpecific=1\fP
.RE

Option values given on the command line override values in the global
section of the configuration file (which, in turn, overrides default
values).

.SH CONFIGURATION FILE

The configuration file is divided into sections. Each section starts with a
line containing its name enclosed in brackets and it follows with settings.
Each setting is placed on a separate line, it contains the name of the
option and the value separated by whitespace characters. Empty lines and lines
starting with # are ignored.

The global section (indicated as
.BR [global] )
sets the global program options as well as the default port specific options.
Other sections are port specific sections and they override the default port
options. The name of the section is the name of the configured port (e.g.
.BR [eth0]
).

.SH PROGRAM OPTIONS
.TP
.B domainNumber
The domain attribute of the local clock. The default is 0.

.TP
.B sa_file
Specifies the location of the file containing Security Associations
used for immediate security processing of the Authentication TLV in
support of the optional security mechanism defined in ieee1588-2019
ch 14.16. See \fBSECURITY ASSOCIATION OPTIONS\fR for information on how
this file should be formatted. \fBspp\fR and \fBactive_key_id\fR should
be specifed for each port to indicate which Security Association from
the /fBsa_file/fR should be used. The default is an empty string.

.SH PORT OPTIONS

.TP
.B active_key_id
Used in conjunction with \fBspp\fR and \fBsa_file\fR directives to
specify which key from the \fBspp\fR defined Security Association
should be used for outbound icv calculations. All Security Assocations
are read from the file specified by \fBsa_file\fR. Requires \fBspp\fR
and \fBsa_file\fR directives. Must be in the range of 1 to 2^32-1,
inclusive. The default is 0 (disabled).

.TP
.B allow_unauth
Allows for pmc to accept unauthenticated management response and
signaling messages when authentication is enabled and \fBspp\fR,
\fBactive_key_id\fR and \fBsa_file\fR are set. Possible values are:
  0: normal receiving
  1: accept mgmt resp/signaling without Authentication TLV
  2: accept mgmt resp/signaling without Authentication TLV or with wrong
     Authentication TLV
The default is 0 (disabled).

.TP
.B network_transport
Select the network transport. Possible values are UDPv4, UDPv6 and L2. The default
is UDPv4.

.TP
.B ptp_dst_mac
The MAC address to which PTP management messages should be sent. Relevant only with L2 transport. The default is 01:1B:19:00:00:00.

.TP
.B spp
Specifies the Security Parameters Pointer of the desired Security
Association to be used for Authentication TLV support for a given port.
Any port with an assigned spp will attach Authentication TLVs to all
outbound messages and check for Authentication TLVs on all inbound
messages in accordance to the corresponding security association
sourced via the \fBsa_file\fR directive. Outbound Authentication TLVs
are generated using the key specified by \fBactive_key_id\fR. Not
compatible with one step ports or advertised versions less then
PTPv2.1. Requires \fBsa_file\fR and \fBactive_key_id\fR directives.
Must be in the range of 0 to 255, inclusive.
The default is -1 (disabled).

.TP
.B transportSpecific
The transport specific field. Must be in the range 0 to 255.
The default is 0.

.SH MANAGEMENT IDS

.TP
.B ANNOUNCE_RECEIPT_TIMEOUT
.TP
.B CLOCK_ACCURACY
.TP
.B CLOCK_DESCRIPTION
.TP
.B CURRENT_DATA_SET
.TP
.B DEFAULT_DATA_SET
.TP
.B DELAY_MECHANISM
.TP
.B DOMAIN
.TP
.B GRANDMASTER_SETTINGS_NP
.TP
.B LOG_ANNOUNCE_INTERVAL
.TP
.B LOG_MIN_PDELAY_REQ_INTERVAL
.TP
.B LOG_SYNC_INTERVAL
.TP
.B NULL_MANAGEMENT
.TP
.B PARENT_DATA_SET
.TP
.B PORT_DATA_SET
.TP
.B PORT_DATA_SET_NP
.TP
.B PORT_HWCLOCK_NP
.TP
.B PORT_PROPERTIES_NP
.TP
.B PORT_SERVICE_STATS_NP
.TP
.B PORT_STATS_NP
.TP
.B PRIORITY1
.TP
.B PRIORITY2
.TP
.B SLAVE_ONLY
.TP
.B TIMESCALE_PROPERTIES
.TP
.B TIME_PROPERTIES_DATA_SET
.TP
.B TIME_STATUS_NP
.TP
.B TRACEABILITY_PROPERTIES
.TP
.B UNICAST_MASTER_TABLE_NP
.TP
.B USER_DESCRIPTION
.TP
.B VERSION_NUMBER

.SH WARNING

Be cautious when the same configuration file is used for both ptp4l
and pmc.  Keep in mind that values specified in the configuration file
take precedence over their default values. If a certain option which
is common to ptp4l and pmc is specified to a non-default value in the
configuration file (e.g. for ptp4l), then this non-default value
applies also for pmc. This might be not what is expected.

To avoid securely these unexpected behaviour, different configuration files
for ptp4l and pmc are recommended.

.SH SEE ALSO
.BR ptp4l (8)
